package com.gnerv.battle.boot.module.base.business;

import com.gnerv.battle.boot.module.base.model.dto.RoleAccountDTO;
import com.gnerv.battle.boot.module.base.model.dto.RoleCreateDTO;
import com.gnerv.battle.boot.module.base.model.dto.RoleDTO;
import com.gnerv.battle.boot.module.base.model.dto.RolePermissionDTO;
import com.gnerv.battle.boot.module.base.model.dto.RoleUpdateDTO;
import com.gnerv.battle.boot.module.base.model.dto.RoleViewDTO;
import com.gnerv.battle.boot.common.base.model.RestResult;

import java.util.List;

/**
 * @author ligen
 * @description 管理-账户业务操作
 * @createDate 2023-06-08 20:23:32
 */
public interface RoleBusiness {

    RestResult<Void> create(RoleCreateDTO roleCreateDTO);

    RestResult<Void> deleteByUkId(String ukId);

    RestResult<Void> updateByUkId(RoleUpdateDTO roleUpdateDTO);

    RestResult<RoleDTO> selectByUkId(String ukId);

    RestResult<List<RoleDTO>> listByName(String name);

    RestResult<Void> bindAccount(RoleAccountDTO roleAccountDTO);

    RestResult<Void> bindPermission(RolePermissionDTO rolePermissionDTO);

    RestResult<Void> bindView(RoleViewDTO roleViewDTO);
}
